速報APP / 工具 / BTduino - Arduino - Bluetooth

BTduino - Arduino - Bluetooth

價格:免費

更新日期:2015-11-30

檔案大小:1.5M

目前版本:1.7

版本需求:Android 1.6 以上版本

官方網站:mailto:davidcswx@gmail.com

BTduino - Arduino - Bluetooth(圖1)-速報App

BTduino 是利用手機藍芽裝置(Bluetooth)連接 Arduino 的應用程式。此程式現提供數字按鍵模式及遊戲控制器模。往後亦會加入PWM,各種感應器及按鍵配對等功能。使用者需連接藍芽接收裝置如HC06至Arduino。藍芽HC06連接Arduino的設置如下:

1. 藍芽VCC接Arduino 5v或3.3v(視乎所購買的裝置而定)

2. 藍芽GND接Arduino GND

3. 藍芽RXD接Arduino TX(Pin10)

4. 藍芽TXD接Arduino RX(Pin11)

// Arduino RX(Pin 11) connect to Bluethooth TX, Arduino TX(Pin 10) connect to Bluethooth RX

Arduino 設定

/*

btduino2 - Terminal Mode - by David Chung

*/

#include

SoftwareSerial myBT(11, 10);

const int ledPin = 13;

String inCode = "";

boolean endCode = false;

void setup() {

Serial.begin(9600);

myBT.begin(9600);

pinMode(ledPin, OUTPUT);

inCode.reserve(50);

}

void loop() {

if (myBT.available()) {

char incomingChar = myBT.read();

if(incomingChar == ')'){

endCode = true;

} else {

inCode += incomingChar;

}

}

if (endCode){

int strEnd = inCode.indexOf(')');

String myString = inCode.substring(0, strEnd);

Serial.print("Incoming : ");

Serial.println(myString);

if(myString == "on"){

digitalWrite(ledPin, HIGH);

myBT.print("LED On");

}

if(myString == "off"){

digitalWrite(ledPin, LOW);

myBT.print("LED Off");

}

inCode = "";

endCode = false;

}

}

/*

btduino2 - GamePad Mode - by David Chung

*/

#include

SoftwareSerial myBT(11, 10);

BTduino - Arduino - Bluetooth(圖2)-速報App

const int ledPin = 13;

int incomingByte = 0;

void setup() {

Serial.begin(9600);

myBT.begin(9600);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (myBT.available()) {

incomingByte = myBT.read();

Serial.println(char(incomingByte));

if(incomingByte == 'L'){

digitalWrite(ledPin, HIGH);

}

if(incomingByte == 'R'){

digitalWrite(ledPin, LOW);

}

}

}

/*

Slider Mode

*/

#include

SoftwareSerial myBT(11, 10);

const int ledPin = 13;

String inCode = "";

boolean endCode = false;

void setup() {

Serial.begin(9600);

myBT.begin(9600);

pinMode(ledPin, OUTPUT);

inCode.reserve(30);

}

void loop() {

if (myBT.available()) {

char incomingChar = myBT.read();

if(incomingChar == ')'){

endCode = true;

} else {

inCode += incomingChar;

}

}

if (endCode){

int comma1 = inCode.indexOf(',');

int comma2 = inCode.indexOf(',', comma1 + 1);

String Rs = inCode.substring(0, comma1);

String Gs = inCode.substring(comma1 + 1, comma2);

String Bs = inCode.substring(comma2 + 1);

Serial.print("inCode = ");

Serial.print(inCode);

Serial.print(" R = ");

Serial.print(Rs);

Serial.print(" G = ");

Serial.print(Gs);

BTduino - Arduino - Bluetooth(圖3)-速報App

Serial.print(" B = ");

Serial.println(Bs);

int R = Rs.toInt();

int G = Gs.toInt();

int B = Bs.toInt();

analogWrite(ledPin, R);

inCode = "";

endCode = false;

}

}

/*

btduino2 - Orientation Mode - by David Chung

*/

#include

SoftwareSerial myBT(11, 10);

const int ledPin = 13;

String inCode = "";

boolean endCode = false;

void setup() {

Serial.begin(9600);

myBT.begin(9600);

pinMode(ledPin, OUTPUT);

inCode.reserve(30);

}

void loop() {

if (myBT.available()) {

char incomingChar = myBT.read();

if(incomingChar == ')'){

endCode = true;

} else {

inCode += incomingChar;

}

}

if (endCode){

int comma1 = inCode.indexOf(',');

int comma2 = inCode.indexOf(',', comma1 + 1);

String As = inCode.substring(0, comma1);

String Ps = inCode.substring(comma1 + 1, comma2);

String Rs = inCode.substring(comma2 + 1);

Serial.print("inCode = ");

Serial.print(inCode);

Serial.print(" Azimuth = ");

Serial.print(As);

Serial.print(" Pitch = ");

Serial.print(Ps);

Serial.print(" Roll = ");

Serial.println(Rs);

int A = As.toInt();

int P = Ps.toInt();

int R = Rs.toInt();

inCode = "";

endCode = false;

}

BTduino - Arduino - Bluetooth(圖4)-速報App

}

BTduino - Arduino - Bluetooth(圖5)-速報App